///////////////////////////////////////////////////////////////////////////////
//
// lighthouse3D - 3D Software Library
//
// File: CBasicDefs.h
//
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2003-2013 Marcus Reinhardt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
///////////////////////////////////////////////////////////////////////////////
//
// You can find a copy of the GNU General Public License (gpl.txt) in the
// directory of the library.
//
///////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//
// This file contains basic definition for the library. If you change any of
// these values be aware of the results. Some changes might cause your
// application to crash.
//
////////////////////////////////////////////////////////////////////////////////

#ifndef _CBasicDefs_H_
#define _CBasicDefs_H_

#define _maxScreenSizeX_           2048
#define _maxScreenSizeY_           2048

#define _zBufferClear_             1000000000000.0f
#define _deltaZ_                   2.5f

#define _2DScreenClear_            0

////////////////////////////////////////////////////////////////////////////////
// If you increase these to values be sure that they achieve the constraint
// _maxTexSizeX_ * _maxTexSizeY_ * 4 + 1024 < Stacksize.
// Stacksize in MinGW is normally 2 mbytes -> Upgrade to 6-8 mbytes
////////////////////////////////////////////////////////////////////////////////

#define _maxTexSizeX_              1024
#define _maxTexSizeY_              1024

#define _maxPicSizeX_              1536
#define _maxPicSizeY_              1536

#define _maxFontSize_			   20

#define _minNearPlane_             0
#define _maxFarPlane_              10000

#define _sizeOfTriangleList_       32768*4

////////////////////////////////////////////////////////////////////////////////
//
// The following values are not allowed to change!!!
//
////////////////////////////////////////////////////////////////////////////////

#define _nullRenderer_             0
#define _wireFrameRenderer_        1
#define _texRenderer_              2

#define _noTexShader_              0
#define _lambertTexShader_         1
#define _gouraudTexShader_         2
#define _phongTexShader_           4

#define _noBackFaceCulling_        0
#define _backFaceCulling_          1

#define _lambertLighting_          1
#define _phongLighting_            2

#define _noTexFilter_              0
#define _linearTexFilter_          1
#define _bilinearTexFilter_        2
#define _trilinearTexFilter_       4

#define _noFSAntiAliasing_         0
#define _bilinearFSAntiAliasing_   1
#define _bilinear2XFSAntiAliasing_ 2
#define _bilinear4XFSAntiAliasing_ 4

#define _noFogSynthesis_           0
#define _linearFogSynthesis_       1
#define _exponentialFogSynthesis_  2

#define _showLogo_		           0
#define _hideLogo_		           0

#define _minFilterDiff_            4

#define _useInternal2DScreen_      1

#define _ambientLight_             1
#define _dotLight_                 2

#define _noCollisionDetection_     	   	 0
#define _standartCollisionDetection_     1

#define _lib3DVersion_             "0.7.0.2"

////////////////////////////////////////////////////////////////////////////////
//
// GUI defines
//
////////////////////////////////////////////////////////////////////////////////

#define _GUIHandles_                64
#define _GUITypeUnknown_             0
#define _GUITypeMainScreen_        100
#define _GUITypeButton_            110
#define _GUITypeLabel_             120
#define _GUITypeWindow_            130
#define _GUITypeInputBox_          140

////////////////////////////////////////////////////////////////////////////////
//
// Library compLSe time configuration
//
////////////////////////////////////////////////////////////////////////////////

// #define USE_PAINTERS_ALG

#endif
